In networking environments, each node on a network typically has a unique network protocol address to ensure that data transfers and communication between nodes over the network are correctly delivered to the intended destination(s). For instance, the Internet Protocol Version 4 (IPv4) defines a 32-bit address to identify the various nodes on a network. The address is logically subdivided into four octets. The Internet Protocol Version 6 (IPv6) defines a 128-bit address, etc. Each particular network protocol may define a different format for its network protocol address, but in general, the function of the network protocol address is to uniquely identify a node on a network.
The term node refers to any processing location on a network. In general, the terms node, host, and network device will be used interchangeably to describe a network processing location identified by a network protocol address. Exemplary nodes include, but are not limited to, personal computers, printers, fax machines, scanners, network databases, etc.
When a node is connected to a network, a network protocol address may be obtained for the node in several ways. An operator, such as a network administrator, may assign a network protocol address to the node manually. However, manual assignment of network protocol addresses requires both knowledge of the network to insure unique address assignment to each node, and at least the fundamental skills involved in setting up an address for a particular node or device.
Accordingly, manual assignment of network protocol addresses is often time consuming and inconvenient, requiring the availability of an operator with sufficient expertise to bring a device on-line. In addition, manual assignment of network protocol addresses may be vulnerable to operator error, particularly in larger networks or under circumstances where change or update of network protocol addresses is needed.
Another method of obtaining a network protocol address for a node is by implementing a server, connected to the network, and configured to assign network protocol addresses to network nodes as they are connected to the network. According to this approach, the server assumes the responsibilities of the network administrator by assigning network protocol addresses to the nodes on the network either from a pool of available addresses maintained by the server, or by deriving an address from device-specific information or generating addresses algorithmically. A server obviates the need to have an operator manually assign addresses. As a result, the amount of expertise needed to bring a device on-line is reduced since maintenance and book-keeping of available network protocol addresses is managed by the network server.
Several protocols have been developed that define methods by which a network server may communicate with and assign a network protocol address to a node when the node is first connected to the network or the network protocol address of a node needs to be changed or updated. One such protocol is the Dynamic Host Configuration Protocol (DHCP). The DHCP protocol defines a set of messages or packets that permit a node and a server to negotiate a lease on a network protocol address. In a DHCP transaction, the network node seeking a network protocol address is referred to as the DHCP client or simply as the client. A typical transaction between a client and a server is described in the Appendix. In addition, a detailed description of the DHCP protocol is provided in the protocol definition Request for Comment (RFC) 1541, which is hereby incorporated by reference in its entirety.
Server-based assignment approaches supporting DHCP are widely used in current networks. The protocol defines rules by which the client and server communicate, deferring the implementation details of how a server generates and manages network protocol addresses to the server designer. As such, a DHCP server can be customized to suit specific network situations. For instance, many conventional servers allocate a network protocol address from a pool of available addresses. However, in such cases, the address assigned to a particular node is often chosen arbitrarily. As a result, network protocol addresses contain no information associated with the device to which it is assigned.
In other conventional server-based approaches, the network protocol address is generated from information specific to a device. For example, the network protocol address may be hashed or otherwise derived from the physical layer address (e.g., the MAC address, Ethernet address, network interface card (NIC) address, etc.) of the device. These type of algorithmic methods yield addresses that vary as a function of the device (i.e., each device will generate a unique and often deterministic address). At best, such methods produce addresses that can be traced to the hardware address of a device.
However, as will be appreciated by those skilled in the art, device-specific information is typically used as a convenient means to seed an algorithm to insure a network protocol address will be unique, not to embed information about the device in the address. In fact, the original device-specific information may be available from diagnostic information provided by network monitoring software. As such, even in cases where it is recoverable from the hashing function or algorithm, the information is already readily available.
As such, conventional address generation and assignment methods provide network protocol addresses that do not contain useful information about the device to which it is assigned. The address functions only as an identifier to the network. However, from a diagnostic point of view, this information may contain no further information associated with the device.